1. Field of the Invention
The present invention relates generally to congestion control during data transfer and, more particularly, to systems and methods for permitting buffers to transmit more than their statically allocated bandwidth.
2. Description of Related Art
Conventional network devices, such as routers, relay streams of data through a network from a source to a destination. Typically, the network devices include one or more memory subsystems to temporarily buffer data while the network devices perform network-related functions, such as route processing or accounting.
A data stream may be considered a pipe of data packets belonging to a communication between a particular source and one or more particular destinations. A network device may assign a variable number of queues (e.g., where a queue may be considered a logical first-in, first-out (FIFO) buffer) to a data stream. For a stream with n queues, the relationship of queues and streams may be represented by:
      stream    bandwidth    =            ∑      0              n        -        1              ⁢                  ⁢                  queue        bandwidth            .      
Typically, each of the queues is allocated a static amount of the stream's bandwidth. A problem that may arise is that some queues may be overutilized while other queues are underutilized. When this occurs, the network device may be forced to drop packet data from the overutilized queues to avoid becoming over-congested. As a result, the throughput of the network device decreases.
Therefore, there is a need for systems and methods for permitting queues to obtain more of a stream's bandwidth than originally allocated.